package com.beidouapp.service;

import java.util.List;

import com.beidouapp.domain.pojo.Dict;

/**
 * 基础编码字典服务
 */
public interface DictService
{
    /**
     * 根据字典类型编码和字典编码全路径获取指定字典对象
     * 
     * @param dictTypeCode 字典类型编码，不可为空。
     * @param dictCodeFqn 字典编码全路径，不可为空。
     * @return 字典对象，无匹配对象时返回NULL
     */
    public Dict getDict (String dictTypeCode, String dictCodeFqn);

    /**
     * 根据字典类型编码和字典编码全路径获取当前字典对象的下级字典对象集合。
     * 
     * @param dictTypeCode 字典类型编码，不可为空。
     * @param dictCodeFqn 字典编码全路径，可以为空，为空时表示获取指定类型的第一层级字典对象。
     * @return 字典对象集合，无匹配对象时返回空LIST。
     */
    public List <Dict> getChildDict (String dictTypeCode, String dictCodeFqn);
    
    /**
     * 根据字典类型编码和字典编码全路径获取当前字典对象的下级字典对象集合。
     * 
     * @param dictTypeCode 字典类型编码，不可为空。
     * @param dictCodeFqn 字典编码全路径，可以为空，为空时表示获取指定类型的第一层级字典对象。
     * @param isEnable 为true只返回启用，false返回停用，不可为空，请注意，字典的isEnable字段为空也将被判定为false
     * @return 字典对象集合，无匹配对象时返回空LIST。
     */
    public List <Dict> getChildDictByEnableState (String dictTypeCode, String dictCodeFqn, Boolean isEnable);
    
    /**
     * 获取所有字典对象。
     * 
     * @return 字典集合。
     */
    public List <Dict> findAllDict ();    
    
}
